package com.wangjiacai.hql.condition;

import java.lang.annotation.*;

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface Condition {

    Class<? extends Where> condition();

    Class<? extends Column> column();

    boolean userValue() default false;

    String format() default "";

    interface Column<T extends Annotation> {
        String column(T t, String property);
    }

    interface Where<T extends Annotation,U> {
        String where(T annotation, String property, String column, Object obj, U value);
    }
}
